1. Field of the Invention
The present invention relates to a method, system, and program for migrating source data to target data.
2. Description of the Related Art
A storage element, such as a database file, directory or any grouping of data, may be migrated from a source storage location to a target storage location in order to establish and maintain a mirror copy of data or to transfer the data to a new location at the target location from where the data will be accessed after migration. Many large scale data transfers, such as the transfer of an on-line or business database system, may take a substantial amount of time to migrate over a network. Moreover, during the migration, the system may need to permit transactions to continue.
Various hardware and software solutions provide mechanisms to transfer updates to both the source and target locations while the data is being migrated. A migration operation typically involves a read request to the source data and then issuance of a write request to the target. Migration systems must address a potential conflict that can occur when a write request to source data from an application is initiated while the source data is being migrated to the target data. For instance, if new source data is received while the old source data is being written, then the new source data may not be migrated to the target location.
One known solution to this potential conflict is to serialize access to the source data until the write of application data or migration completes, so that any intervening application write and migration operations are not allowed to occur until the pending write or migration completes. This delays returning complete to the request waiting for the lock to be released by the current write or migration operation. Thus, serialization prevents writes to the source data from being executed while data is being migrated until the source data has completed writing to the target data. Further, if an update is occurring to a block, then a migration operation to that same block is delayed until the update completes. Delays related to serialization can slow the performance of both the write operation to the source data and the migration of the source data to the target data.